import java.util.Scanner;

public class DecimalToBinary {
//    十进制 转换成 二进制
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建一个 Scanner 对象，用于读取用户的输入
        System.out.print("请输入一个十进制数: ");
        int decimalNumber = scanner.nextInt(); // 从用户输入中读取一个整数，并赋值给 decimalNumber
        String binaryNumber = decimalToBinary(decimalNumber); // 调用 decimalToBinary 方法，将十进制数转换为二进制字符串
        System.out.println("十进制: " + decimalNumber); // 输出原始的十进制数
        System.out.println("二进制: " + binaryNumber); // 输出转换后的二进制字符串
    }

    // 定义一个静态方法，将十进制数转换为二进制字符串
    public static String decimalToBinary(int decimal) {
        // 处理特殊情况，如果输入为0，直接返回 "0"
        if (decimal == 0) {
            return "0";
        }

        StringBuilder binary = new StringBuilder(); // 创建一个 StringBuilder 对象，用于构建二进制字符串

        // 使用循环将十进制数转换为二进制
        while (decimal > 0) {
            int remainder = decimal % 2; // 计算当前十进制数的最低位（余数）
            binary.insert(0, remainder); // 将余数插入到 StringBuilder 的开头
            decimal = decimal / 2; // 更新十进制数，除以2
        }

        return binary.toString(); // 将 StringBuilder 对象转换为字符串并返回
    }
}
